/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mygame.Units;

import mygame.Units.attacks.Weapon;
import com.jme3.asset.AssetManager;
import com.jme3.bullet.PhysicsSpace;
import com.jme3.math.Quaternion;
import com.jme3.math.Vector3f;
import com.jme3.scene.Node;
import java.util.ArrayList;

/**
 *
 * @author Ricardo
 */
public abstract class Unit {
    static final Vector3f VECTOR_DOWN = new Vector3f(0, -1, 0);
    static final Vector3f VECTOR_FORWARD = new Vector3f(1, 0, 0);
    
    public final String name;
    
    protected float HP;
    
    protected float armor;
    protected float magicResist;
    protected float fireResist;
    
    protected Weapon[] waepons;

    public Unit(String name, float HP, float armor, float magicResist, float fireResist) {
        this.name = name;
        this.HP = HP;
        this.armor = armor;
        this.magicResist = magicResist;
        this.fireResist = fireResist;
    }
    
    abstract public void build(AssetManager assetManager,PhysicsSpace physicsSpace , Node rootNode, Node shootables);
    
    abstract public void update(float tpf);
    
    abstract public Vector3f getLocation();
    abstract public void setLocation(Vector3f location);
    abstract public Quaternion getRotation();
}
